<?php
namespace App\Services;

use App\Http\Controllers\V1\BaseController;
use App\Models\Files;

class BaseService extends BaseController{

    /**
     * 图片状态设置为有效
     * @param $url string 图片url
     * @param string|null $old_file_url 旧图片url
     * @return void
     */
    public function setFileActive(string $url,string $old_file_url = null): void
    {
        if($url == $old_file_url)return;
        self::setFileStatus($url);
        if($old_file_url !== null){
            self::setFileStatus($old_file_url,0);
        }

    }

    /**
     * 图片状态设置为无效
     * @param string $url
     * @return void
     */
    public function delFileActive(string $url): void{
        self::setFileStatus($url,0);
    }
    /**
     * 设置图片状态
     * @param string $url 图片url
     * @param int $type 状态类型 1有效 0无效
     * @return void
     */
    private function setFileStatus(string $url,int $type =1): void
    {
        //检测这个图片是否存在
        $file = fn()=>Files::query();
        $fileName = function ($url){
            $arr = explode('storage/', $url);
            return $arr[1];
        };
        $isFile = $file()->where('url', $fileName($url));
        if(!$isFile->exists()){
            Message(__('file.file_not_exist')."=>{$type}");
        }
        else{
            $isFile->update(['status' => $type]);
        }
    }
}
